package to;

import java.io.Serializable;
import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToOne;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

import org.hibernate.annotations.Cascade;
import org.hibernate.annotations.CascadeType;

@Entity
@Table(name = "tbl_lancamento")
public class Lancamento implements Serializable {

	@Id
	@GeneratedValue
	private Integer codigo;

	@JoinColumn
	@OneToOne
	@Cascade({ CascadeType.DELETE_ORPHAN, CascadeType.SAVE_UPDATE })
	private SolicitacaoDeAnalise solicitacao;

	@Column
	private Double valorTotal;

	@Column
	private String status;

	@JoinColumn
	@OneToOne
	@Cascade({ CascadeType.DELETE_ORPHAN, CascadeType.SAVE_UPDATE })
	private TipoCliente tabelaDeValor;

	@Temporal(TemporalType.DATE)
	private Date dataVencimento;

	@Temporal(TemporalType.DATE)
	private Date dataPagamento;

	@Temporal(TemporalType.DATE)
	private Date dataEmissao;

	@Column
	private Double troco;

	@Column
	private Double valorRecebido;

	@Column
	private String especie;

	public Integer getCodigo() {
		return codigo;
	}

	public void setCodigo(Integer codigo) {
		this.codigo = codigo;
	}

	public SolicitacaoDeAnalise getSolicitacao() {
		return solicitacao;
	}

	public void setSolicitacao(SolicitacaoDeAnalise solicitacao) {
		this.solicitacao = solicitacao;
	}

	public Double getValorTotal() {
		return valorTotal;
	}

	public void setValorTotal(Double valorTotal) {
		this.valorTotal = valorTotal;
	}

	public String getStatus() {
		return status;
	}

	public void setStatus(String status) {
		this.status = status;
	}

	public Date getDataVencimento() {
		return dataVencimento;
	}

	public void setDataVencimento(Date dataVencimento) {
		this.dataVencimento = dataVencimento;
	}

	public Date getDataPagamento() {
		return dataPagamento;
	}

	public void setDataPagamento(Date dataPagamento) {
		this.dataPagamento = dataPagamento;
	}

	public Date getDataEmissao() {
		return dataEmissao;
	}

	public void setDataEmissao(Date dataEmissao) {
		this.dataEmissao = dataEmissao;
	}

	public TipoCliente getTabelaDeValor() {
		return tabelaDeValor;
	}

	public void setTabelaDeValor(TipoCliente tabelaDeValor) {
		this.tabelaDeValor = tabelaDeValor;
	}

	public Double getTroco() {
		return troco;
	}

	public void setTroco(Double troco) {
		this.troco = troco;
	}

	public Double getValorRecebido() {
		return valorRecebido;
	}

	public void setValorRecebido(Double valorRecebido) {
		this.valorRecebido = valorRecebido;
	}

	public String getEspecie() {
		return especie;
	}

	public void setEspecie(String especie) {
		this.especie = especie;
	}

}
